#include<stdio.h>
#include<string.h>
#include<algorithm>
#define sc scanf
#define pr printf
#define ll long long
using namespace std;
const int N=105;
ll map[N][N];
int dp[N][N];
int book[N][N];
int L,W,ans;
void dfs(int x,int y,int step){
	int tx,ty;
	if(dp[x][y]>step)
		return;
	dp[x][y]=step;
	ans=ans>step?ans:step;
	tx=x-1;	ty=y;
	if(tx>=0 && map[tx][ty]>map[x][y]){
		dfs(tx,ty,step+1);
	}
	tx=x+1;ty=y;
	if(tx<W && map[tx][ty]>map[x][y]){
		dfs(tx,ty,step+1);
	}
	tx=x;ty=y+1;
	if(ty<L && map[tx][ty]>map[x][y]){
		dfs(tx,ty,step+1);
	}
	tx=x;ty=y-1;
	if(ty>=0 && map[tx][ty]>map[x][y]){
		dfs(tx,ty,step+1);
	}
	return;
}
int main()
{
	int i,j;
	sc("%d%d",&L,&W);getchar();
	for(i=0;i<W;i++)
		for(j=0;j<L;j++)
			sc("%lld",&map[i][j]);
	for(i=0;i<W;i++)
		for(j=0;j<L;j++)
			dfs(i,j,1);
	pr("%d\n",ans);
}
